package gti310.tp4;

import java.util.ArrayList;

/**
 * La classe RLC effectue le traitement des coefficient AC par la compression
 * RLC, dont le principe est de remplacer une séquence de ‘nb’ éléments 
 * identiques de valeur ‘val’ par un couple (nb, val). 
 * 
 * @author Émile Robinson et Fredy Alexander Bonilla
 * @date 2014-12-06
 *
 */
public class rlc {

	public ListeComposant liste;

	/**
	 * Constructeur de la classe RLC
	 * @param liste
	 */
	public rlc(ListeComposant liste){
		this.liste = liste;
	}

	/**
	 * Effectuer la creation de la liste des coefficients AC pour chaque bloc de chaque composantes
	 * retourne la liste par composantes
	 * 
	 * @return la liste des composant avec les coefficient AC
	 */
	public ArrayList<ArrayList<rlcLocator>> process(){
		ArrayList<ArrayList<rlcLocator>> listeComponentAC = new ArrayList<ArrayList<rlcLocator>>();

		for(int i = 0;i<liste.getTaille();i++){

			ArrayList<rlcLocator> listeAC = new ArrayList<rlcLocator>();

			for(int j = 0;j<liste.getComponentZZ(i).size();j++){

				int buffer = 0;

				for(int a = 1;a<liste.getComponentZZ(i).get(j).length;a++){

					int value = (int)liste.getComponentZZ(i).get(j)[a];

					if(value == 0){
						if(buffer == 15){
							listeAC.add(new rlcLocator(0,0));
						}
						else{ buffer++; }
					}
					else{
						listeAC.add(new rlcLocator(buffer,value));
					}					
				}				
			}

			listeComponentAC.add(listeAC);
		}		

		return listeComponentAC;
	}

}
